package com.yunke.entity.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;

/**
 * 角色VO
 * 
 * @author yunke
 * @since 1.0.0
 */
@Data
@Schema(name = "YunkeRoleVo", description = "角色VO")
public class YunkeRoleVo {

    @Schema(description = "角色ID")
    private Long id;

    @Schema(description = "角色编码")
    private String roleCode;

    @Schema(description = "角色名称")
    private String roleName;

    @Schema(description = "角色描述")
    private String description;

    @Schema(description = "角色级别")
    private Integer level;

    @Schema(description = "权限列表")
    private List<String> permissions;

    @Schema(description = "菜单ID列表")
    private List<Long> menuIds;

    @Schema(description = "菜单列表")
    private List<YunkeMenuVo> menus;

    @Schema(description = "数据权限范围（1全部 2部门 3本人）")
    private Integer dataScope;

    @Schema(description = "数据权限范围描述")
    private String dataScopeText;

    @Schema(description = "是否内置角色")
    private Boolean isBuiltIn;

    @Schema(description = "是否启用")
    private Boolean enabled;

    @Schema(description = "启用状态描述")
    private String enabledText;

    @Schema(description = "排序号")
    private Integer sortOrder;

    @Schema(description = "备注")
    private String remark;

    @Schema(description = "创建人昵称")
    private String creatorName;

    @Schema(description = "创建时间")
    private Long createTime;

    @Schema(description = "更新时间")
    private Long updateTime;
} 